/*
 * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
 *
 * SPEC VERSION: 0.1-435
 * MAIN LINK: expressions, constant-literals, real-literals -> paragraph 2 -> sentence 1
 * NUMBER: 2
 * DESCRIPTION: Real literals suffixed by f/F (float suffix) with an exponent mark.
 */

val value_1 = 0.0e0f
val value_2 = 0.0e-00F
val value_3 = 0.0E000F
val value_4 = 0.0E+0000f

val value_5 = 00.0e+0f
val value_6 = 000.00e00f
val value_7 = 0000.000E-000F

val value_8 = 1.0E+1F
val value_9 = 22.00e22F
val value_10 = 2345678.345678e00000000001F
val value_11 = 456.56e-0f
val value_12 = 5.65e000000000000F
val value_13 = 654.7654E+010f
val value_14 = 76543.876543E1f
val value_15 = 8765432.98765432e-2f
val value_16 = 987654321.0987654321E-3f

fun box(): String? {
    val value_17 = 0.1111e4f
    val value_18 = 1.22222E-5F
    val value_19 = 9.33333e+6F
    val value_20 = 9.444444E7F
    val value_21 = 8.5555555e8f
    val value_22 = 3.777777777E-308f
    val value_23 = 6.99999999999e-309F

    val value_24 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f
    val value_25 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F
    val value_26 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f

    if (value_1.compareTo(0.0e0f) != 0 || value_1.compareTo(0.0f) != 0) return null
    if (value_2.compareTo(0.0e-00F) != 0 || value_2.compareTo(0.0F) != 0) return null
    if (value_3.compareTo(0.0E000f) != 0 || value_3.compareTo(0.0f) != 0) return null
    if (value_4.compareTo(0.0E+0000F) != 0 || value_4.compareTo(0.0F) != 0) return null
    if (value_5.compareTo(00.0e+0f) != 0 || value_5.compareTo(0.0f) != 0) return null
    if (value_6.compareTo(000.00e00F) != 0 || value_6.compareTo(0.0f) != 0) return null
    if (value_7.compareTo(0000.000E-000F) != 0 || value_7.compareTo(0.0f) != 0) return null

    if (value_8.compareTo(1.0E+1F) != 0 || value_8.compareTo(10.0F) != 0) return null
    if (value_9.compareTo(22.00e22F) != 0 || value_9.compareTo(2.2E23F) != 0) return null
    if (value_10.compareTo(2345678.345678e00000000001f) != 0 || value_10.compareTo(2.345678345678E7F) != 0) return null
    if (value_11.compareTo(456.56e-0F) != 0 || value_11.compareTo(456.56f) != 0) return null
    if (value_12.compareTo(5.65e000000000000f) != 0 || value_12.compareTo(5.65F) != 0) return null
    if (value_13.compareTo(654.7654E+010f) != 0 || value_13.compareTo(6.547654E12f) != 0) return null
    if (value_14.compareTo(76543.876543E1F) != 0 || value_14.compareTo(765438.76543f) != 0) return null
    if (value_15.compareTo(8765432.98765432e-2f) != 0 || value_15.compareTo(87654.3298765432f) != 0) return null
    if (value_16.compareTo(987654321.0987654321E-3f) != 0 || value_16.compareTo(987654.3210987655f) != 0) return null

    if (value_17.compareTo(0.1111e4f) != 0 || value_17.compareTo(1111.0f) != 0) return null
    if (value_18.compareTo(1.22222E-5F) != 0) return null
    if (value_19.compareTo(9.33333e+6F) != 0 || value_19.compareTo(9333330.0f) != 0) return null
    if (value_20.compareTo(9.444444E7F) != 0) return null
    if (value_21.compareTo(8.5555555e8f) != 0 || value_21.compareTo(8.5555555E8f) != 0) return null
    if (value_22.compareTo(3.777777777E-308f) != 0) return null
    if (value_23.compareTo(6.99999999999e-309F) != 0 || value_23.compareTo(6.99999999999E-309F) != 0) return null
    if (value_24.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F) != 0 || value_24.compareTo(0.0f) != 0) return null
    if (value_25.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f) != 0 || value_25.compareTo(0.0f) != 0) return null
    if (value_26.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F) != 0 || value_26.compareTo(0.0F) != 0) return null

    return "OK"
}
